<template>
  <div>
    <div class="swiper-container" ref="cur">
      <div class="swiper-wrapper">
        <div class="swiper-slide" v-for="(carousel, index) in list" :key="carousel.id">
          <img :src="carousel.imgUrl">
        </div>
      </div>
      <!-- 如果需要分页器 -->
      <div class="swiper-pagination"></div>

      <!-- 如果需要导航按钮 -->
      <div class="swiper-button-prev"></div>
      <div class="swiper-button-next"></div>
    </div>
  </div>
</template>

<script>
import Swiper from 'swiper'
export default {
  name: 'Carsousel',
  props:['list'],
  data() {
    return {

    };
  },

  mounted() {

  },

  methods: {

  },
  watch:{
    // 监听bannerlist 数据的变化：因为这条数据发生过变化 ----又空数组变为数组里面的四个元素
    bannerList:{
      //立即监听：不管你数据有没有变化，我上来就立即监听
      // 为什么watch监听不了list，因为数据从来没有发生变化（数据是父亲给的，父亲的时候就是一个对象，对象里面该有的数据都已经有了）
      immediate: true,
      handler(newWalue,oidValue) {
        // 这里通过watch监听bannerlist属性值的变化
        // 如果执行handler，代表组件身上这个属性的属性已经有了 【数组：四个元素】
        this.$nextTick(()=>{
          var mySwiper = new Swiper(this.$refs.cur, {
          //设置轮播图防线
          direction: "horizontal",
          //开启循环模式
          loop: true,
          // 如果需要分页器
          pagination: {
            el: ".swiper-pagination",
            //分页器类型
            type: "bullets",
            //点击分页器，切换轮播
            clickable: true,
          },
          // //自动轮播
          autoplay: {
            delay: 1000,
            //新版本的写法：目前是5版本
            // pauseOnMouseEnter: true,
            //如果设置为true，当切换到最后一个slide时停止自动切换
            stopOnLastSlide: true,
            //用户操作swiper之后，是否禁止autoplay
            disableOnInteraction: false,
          }, 
          // 如果需要前进后退按钮
          navigation: {
            nextEl: ".swiper-button-next",
            prevEl: ".swiper-button-prev",
          },
          // //切换效果
          // // effect: "cube",
        })
        })
      } 
    }
  }
};
</script>

<style lang="less" scoped></style>